# 递归函数：如果一个函数在内部不调用其他的函数，而是调用自己本身的话，这个函数就是递归函数。
# 求阶乘
def jiecheng(n):
    result=1
    for item in range(1,n+1):
        result*=item
        pass
    return result
print('5的阶乘是{}'.format(jiecheng(5)))
def diguiJc(n):
    if n==1:
        return 1#底部结束值
    else:
        return n*diguiJc(n-1)#触底将级级返回相乘，最终返回阶乘结果(可调试看)
    pass
# 递归调用
print(diguiJc(5))
# 递归函数必须有一个结束条件，否则递归无法结束会一直递归下去，直到到达最大递归深度报错。
# 递归案例 模拟实现树形结构的遍历
import os #引入文件操作模块
def findFile(file_Path):
    listRs=os.listdir(file_Path)#得到该路径下所有的文件夹
    for fileItem in listRs:
        full_path=os.path.join(file_Path,fileItem)#获取完整的文件路径
        if os.path.isdir(full_path):#判断是否是文件夹
            findFile(file_Path)#如果是一个文件夹再次去递归
        else:
            print(fileItem)
            pass
        pass
    else:
        return
    pass
# 调用搜索文件夹对象
findFile('')          